//
//  Fraction.m
//  OC4_属性&字符串课后作业
//
//  Created by dllo on 15/10/27.
//  Copyright (c) 2015年 dllo. All rights reserved.
//

#import "Fraction.h"

@implementation Fraction

// 3
//    定义一个分数类（Fraction）
//    实例变量：分子，分母
//    方法：初始化方法（2个参数），便利构造器，约分，打印，加，减，乘，除。
//    提示：加法运算 - (Fraction *)addFraction:(Fraction *)anotherFraction


- (id)initWithNum:(NSInteger)num deno:(NSInteger)deno
{
    self = [super init];
    if (self) {
        [self setNum:num];
        [self setDeno:deno];
    }
    return self;
}

+ (id)fractionWithNum:(NSInteger)num deno:(NSInteger)deno
{
    Fraction *f = [[Fraction alloc] initWithNum:num deno:deno];
    return f;
}


// 打印
- (void)info
{
    NSLog(@"%ld/%ld", [self num], [self deno]);
}


// 约分
- (void)reduce
{
    NSInteger temp = [self num] < [self deno] ? [self num] : [self deno];
    for (NSInteger i = temp; i > 1; i--) {
        if (0 == [self num] % i && 0 == [self deno] % i) {
            [self setNum:[self num] / i];
            [self setDeno:[self deno] / i];
        }
    }
}


// 加法


- (void)add:(Fraction *)a
{
    Fraction *temp = nil;
//    Fraction *temp = [[Fraction alloc] init];
    temp = [temp initWithNum:8 deno:9];
    [temp setNum:[a num] * [self deno] + [a deno] * [self num]];
    [temp setDeno:[a deno] * [self deno]];
    [temp reduce];
    [temp info];

}






@end
